import axios from "axios";
import {store} from "../redux/store";

// 默认的请求基础
axios.defaults.baseURL='http://localhost:5000'

// 默认带上请求头
// axios.defaults.headers

// axios.interceptors.request.use()
// axios.interceptors.response.use()

// axios 请求拦截器
axios.interceptors.request.use(function (config) {
    // 请求前，显示加载
    store.dispatch({
        type: 'change-loading',
        payload: true
    })
    return config;
}, function (error) {
    // 发送请求失败触发的函数，可能是网络错误等等导致请求没有发送出去
    return Promise.reject(error);
});

// 响应拦截器
axios.interceptors.response.use(function (response) {
    // 任何在 2xx 范围内的状态码都会触发这个函数，这里可以处理一些返回的数据等等
    // 请求数据成功后，隐藏 loading
    store.dispatch({
        type: 'change-loading',
        payload: false
    })
    return response;
}, function (error) {
    // 响应失败后的处理
    // 返回的数据无效，隐藏 loading，并提示数据请求错误
    store.dispatch({
        type: 'change-loading',
        payload: false
    })
    return Promise.reject(error);
});

